package com.chenfan.mcn.service;

import com.chenfan.mcn.dao.StarRateCardConfigMapper;
import com.chenfan.common.extension.mybatisplus.enhanced.EnhancedService;
import com.chenfan.mcn.model.StarQuoteWay;
import com.chenfan.mcn.model.StarRateCardConfig;
import com.chenfan.mcn.model.dto.StarRateCardConfigSaveDTO;
import com.chenfan.mcn.model.vo.StarRateCardConfigVO;

import java.util.List;

/**
 * @Author liuyang
 * @Date 2021/12/29
 * @Time 16:05
 * @Version V1.0
 **/
public interface StarRateCardConfigService extends EnhancedService<StarRateCardConfigMapper, StarRateCardConfig> {

    /**
     * 新增刊例配置
     * @param saveDTO
     * @return
     */
    boolean addStarRateCardConfig(StarRateCardConfigSaveDTO saveDTO);

    /**
     * 修改刊例配置
     *
     * @param saveDTO 入参
     * @return
     */
    boolean modifyStarRateCardConfig(StarRateCardConfigSaveDTO saveDTO);

    /**
     * 变更状态
     * @param id
     * @param status
     * @return
     */
    boolean changeStatus(Long id, Integer status);


    /**
     * 获取当前最新的配置
     * @return
     */
    List<StarRateCardConfig> getNewestConfig();

    /**
     * 获取刊例配置列表信息
     * @return
     */
    List<StarRateCardConfigVO> getList();

    /**
     * 根据ID获取详情
     * @param id
     * @return
     */
    StarRateCardConfigVO detail(Long id);

    /**
     * 根据刊例ID获取刊例信息
     * @param id
     * @param verifyExist
     * @return
     */
    StarRateCardConfig getStarRateCardConfig(Long id, boolean verifyExist);

    /**
     * 通过配置获取-非禁用的报价方式
     * @param configIds
     * @param status
     * @return
     */
    List<StarQuoteWay> getStarQuoteWays(List<Long> configIds, Integer status);
}
